﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace PlutoStudio.Domain.UnitOfWork
{
    /// <summary>
    /// 该接口用于完成工作单位。
    /// 此接口不能被注入或直接使用。
    /// 请使用 <see cref="IUnitOfWorkManager"/> 替代。
    /// </summary>
    public interface IUnitOfWorkCompleteHandle : IDisposable
    {
        /// <summary>
        /// 完成这个工作单元。
        /// 该方法会保存所有的更改并提交事务（如果事务存在）。
        /// </summary>
        void Complete();

        /// <summary>
        /// 完成这个工作单元。
        /// 该方法会保存所有的更改并提交事务（如果事务存在）。
        /// </summary>
        Task CompleteAsync();
    }
}
